#ifndef Starter_H
#define Starter_H
#include <string>
#include<iostream>
// 可以根据需要引入数据结构头文件
#include <map>
#include "parser.hpp"
#include <sstream>
#include <string>
#include <vector>

// 为了让词法分析器能够访问到Starter类，需要在这里声明一下
# define YY_DECL \
  yy::parser::symbol_type yylex (Starter& drv)
YY_DECL;
class Starter
{
public:
    yy::location m_loc;
    // 在这里可以声明一些需要全局使用的变量
    std::map<std::string, int> variables;
    std::map<std::string, int> funcTable;
    std::map<std::string, int> idenTable;
    int funcArgsCount;
    int idenCount;
    int ifCount;
    int wlCount;
    int res;

    std::vector<std::string> if_vec;
    std::vector<std::string> wl_vec;
    std::vector<std::string> b_vec;
    std::vector<std::string> con_vec;


// 声明一个外部的字符串缓冲区
    Starter();
    Starter(std::string fileName);
    ~Starter();
    int parse();
    void s_begin();
    void s_end();
   



private:
    std::string my_file;
};
#endif